Este ficheiro foi escrito utilizando R Markdown. Uma maneira simples de formatar códigos R para criação de documentos HTML, PDF, Word e PowerPoint.
Quando clica no botão Knit, é gerado um documento que inclui tanto o conteúdo como a saída de quaisquer partes de código R incorporadas no documento. Pode incorporar um pedaço de código R da seguinte forma:
Para mais detalhes consulte http://rmarkdown.rstudio.com.
1️⃣ Decisões baseadas em dados (Data-Driven Decision Making).
O mundo dos negócios está cada vez mais orientado por dados. O R permite:
✅ Analisar grandes volumes de dados e identificar padrões.
✅ Criar relatórios automatizados para suportar decisões
estratégicas.
✅ Gerar previsões de vendas, procura ou tendências de mercado.
2️⃣ Alternativa ao Excel – Mais poder e flexibilidade
O R permite fazer tudo o que o Excel faz (e muito mais) com maior precisão e eficiência. Embora o Excel seja uma ferramenta essencial, ele tem limitações quando se trata de:
❌ Trabalhar com grandes quantidades de dados.
❌ Criar modelos estatísticos avançados.
❌ Automatizar processos repetitivos.
3️⃣ Visualização de Dados Profissional e Interativa.
✅ O R possui bibliotecas como ggplot2 que criam gráficos sofisticados e personalizados.
✅ Pode gerar dashboards interativos com Shiny, úteis para acompanhamento de KPIs empresariais.
4️⃣ Machine Learning e Inteligência Artificial.
O R é uma excelente ferramenta para aplicar modelos preditivos e inteligência artificial em negócios:
✅ Análise de sentimentos em redes sociais.
✅ Recomendação de produtos baseada no comportamento dos clientes.
✅ Deteção de fraudes em transações financeiras.
5️⃣ Open Source, Gratuito e com uma Comunidade Forte.
Diferente de softwares pagos (como SAS ou SPSS), o R é 100% gratuito
e constantemente atualizado pela sua comunidade global. Além
disso:
✅ Possui milhares de pacotes prontos para diferentes áreas de
negócio.
✅ Tem uma enorme quantidade de recursos de aprendizagem gratuitos.
O R é uma ferramenta poderosa, flexível e gratuita, permitindo que gestores tomem decisões mais informadas e automatizem tarefas complexas.
🚀 e para sua carreira: pode ser um ótimo diferencial no currículo!
✅ R (a linguagem).
• É a linguagem de programação usada para estatística, análise de dados
e machine learning.
• Funciona em linha de comando (terminal) sem interface gráfica.
• Pode ser usado sozinho, mas é menos amigável para iniciantes.
✅ RStudio (o ambiente de desenvolvimento -
IDE).
• É uma ferramenta que facilita o uso do R com uma interface
organizada.
• Oferece um editor de scripts, visualização de gráficos e gestão de
pacotes num só lugar.
• Não substitui o R – precisas do R instalado para que o RStudio
funcione.
👋🏻 Como instalar o R e o RStudio.
Pode sempre utilizar o Posit Cloud na nuvem até que a sua conta atinja os limites de processamento ou o número máximo de projetos permitidos na versão gratuita.
Se preferir, também pode instalar estas aplicações no seu computador e assim evitar qualquer limitação da conta. Para isso, basta seguir estes passos, começando pela instalação do R e, em seguida, do RStudio.
Para instalar o R vá ao CRAN - The Comprehensive R Archive Network em https://cran.r-project.org/ e selecione a versão correspondente ao seu sistema operacional.
Para instalar o R-Studio vá ao site do fornecedor da ferramenta Posit Cloud em https://posit.co/download/rstudio-desktop/ e baixe a versão correspondente ao seu sistema operacional.
A partir de agora, utilize sempre o R Studio.
Toda vez que vamos utilizar o R é necessário preparar o ambiente às suas necessidades. Para isso deve informar quais pacotes (recursos) vamos necessitar. O comando abaixo, verifica se tais pacotes já estáo instalados, caso negativo antes de carregá-los ele instala os pacotes e na sequência carrega-os para a memória do computador.
# limpar a memória do computador
rm(list = ls())
# instalador de pacotes que otimiza recursos
if(!require(pacman)) install.packages("pacman")
library(pacman)
pacman::p_load(tidyverse,
rmarkdown,
knitr,
kableExtra,
GGally,
DataExplorer,
gplots,
SmartEDA
)
#mostra quais pacotes estão carregados
p_loaded()
[1] "kableExtra" "SmartEDA" "gplots" "DataExplorer" "GGally" "knitr" "rmarkdown"
[8] "pacman" "skimr" "lubridate" "forcats" "stringr" "purrr" "readr"
[15] "tidyr" "tibble" "ggplot2" "tidyverse" "dplyr"
Nesta demonstração dos recursos e potencialidades do R, vamos utilizar
dois ficheiros que estão no CANVAS. Então devemos carregar os ficheiros
para o nosso ambiente de trabalho.
## Carregar ficheiro tipo CSV
dados <- read.csv("video games sales.csv", sep = ";", dec = ".", stringsAsFactors = FALSE)
## Verificar a estrutura dos dados
ExpData(dados,type=1)
ExpData(dados,type=2)
str(dados)
'data.frame': 1907 obs. of 12 variables:
$ Rank : int 1 2 3 4 5 6 7 8 9 10 ...
$ Game.Title : chr "Wii Sports" "Super Mario Bros." "Mario Kart Wii" "Wii Sports Resort" ...
$ Platform : chr "Wii" "NES" "Wii" "Wii" ...
$ Year : int 2006 1985 2008 2009 1989 2006 2006 1984 2009 2005 ...
$ Genre : chr "Sports" "Platform" "Racing" "Sports" ...
$ Publisher : chr "Nintendo" "Nintendo" "Nintendo" "Nintendo" ...
$ N..America : num 40.4 29.1 14.5 14.8 23.2 ...
$ Europe : num 28.39 3.58 12.22 10.51 2.26 ...
$ Japan : num 3.77 6.81 3.63 3.18 4.22 6.48 2.93 0.28 4.66 1.93 ...
$ Rest.of.World: num 8.54 0.77 3.21 3.01 0.58 2.88 2.84 0.47 2.25 2.73 ...
$ Global : num 81.1 40.2 33.5 31.5 30.3 ...
$ Review : num 76.3 91 82.1 82.7 88 ...
Uma vez que o conjunto de dados esteja adequado, podemos obter uma análise univariada de cada uma das variáveis presentes no ficheiro. Este comando faz isso de forma rápida e para todas as variáveis contidas no ficheiro.
# Guardar em estatisticas os principais parámetros das variáveis
estatisticas <- ExpNumStat(dados, Outlier = TRUE, Nlim=1)
# Apresentar os parámetros
estatisticas
# A tabela dos parámetros ficou grande (observe que são apresentadas 23 colunas 😳)!
# Então podemos criar a tabela com paginação nativa
estatisticas %>%
kbl(format = "html") %>%
kable_paper(full_width = FALSE) %>%
scroll_box(width = "100%", height = "500px")
| Vname | Group | TN | nNeg | nZero | nPos | NegInf | PosInf | NA_Value | Per_of_Missing | sum | min | max | mean | median | SD | CV | IQR | Skewness | Kurtosis | LB.25% | UB.75% | nOutliers | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4 | Europe | All | 1907 | 0 | 74 | 1833 | 0 | 0 | 0 | 0.000 | 1347.63 | 0.00 | 28.39 | 0.707 | 0.44 | 1.149 | 1.626 | 0.580 | 10.352 | 195.150 | -0.640 | 1.680 | 153 |
| 7 | Global | All | 1907 | 0 | 0 | 1907 | 0 | 0 | 0 | 0.000 | 4746.98 | 0.83 | 81.12 | 2.489 | 1.53 | 3.563 | 1.431 | 1.430 | 9.264 | 147.095 | -1.035 | 4.685 | 179 |
| 5 | Japan | All | 1907 | 0 | 813 | 1094 | 0 | 0 | 0 | 0.000 | 605.46 | 0.00 | 7.20 | 0.317 | 0.02 | 0.725 | 2.283 | 0.300 | 4.226 | 23.536 | -0.450 | 0.750 | 264 |
| 3 | N..America | All | 1907 | 0 | 61 | 1846 | 0 | 0 | 0 | 0.000 | 2400.51 | 0.00 | 40.43 | 1.259 | 0.81 | 1.957 | 1.554 | 0.865 | 9.311 | 135.169 | -0.787 | 2.672 | 149 |
| 1 | Rank | All | 1907 | 0 | 0 | 1907 | 0 | 0 | 0 | 0.000 | 1819278.00 | 1.00 | 1907.00 | 954.000 | 954.00 | 550.648 | 0.577 | 953.000 | 0.000 | -1.200 | -952.000 | 2860.000 | 0 |
| 6 | Rest.of.World | All | 1907 | 0 | 61 | 1846 | 0 | 0 | 0 | 0.000 | 393.74 | 0.00 | 8.54 | 0.206 | 0.13 | 0.343 | 1.662 | 0.160 | 10.251 | 196.663 | -0.180 | 0.460 | 169 |
| 8 | Review | All | 1907 | 0 | 0 | 1907 | 0 | 0 | 0 | 0.000 | 150727.33 | 30.50 | 97.00 | 79.039 | 81.00 | 10.617 | 0.134 | 12.230 | -1.264 | 1.917 | 55.655 | 104.575 | 83 |
| 2 | Year | All | 1907 | 0 | 0 | 1878 | 0 | 0 | 29 | 1.521 | 3763074.00 | 1983.00 | 2012.00 | 2003.767 | 2005.00 | 5.895 | 0.003 | 8.000 | -1.013 | 0.935 | 1988.000 | 2020.000 | 40 |
# Ou podemos escolher (select) alguns dos porametros e não todos como antes...
est_shor <- estatisticas %>%
dplyr::select(Vname, mean, SD, min, max, median, nOutliers, NA_Value)
# Apresentar os parámetros selecionados
est_shor
NA
As vezes, uma avaliação visual vale mais que 1.000 números!!! 😂
#Análise das variáveis categóricas
plot_bar(dados)
2 columns ignored with more than 50 categories.
Game.Title: 1519 categories
Publisher: 95 categories
#Análise das variáveis numéricas
plot_histogram(dados)
plot_density(dados)
A análise visual nos mostrou alguns pontos que merecem reflexão:
A variável Publisher apresenta mais de 50 categorias e por isso não foi gerado gráfico. Alguns destes publisher se calhar tem apenas 1 game… Faz sentido classficar os publishers com menos de n games como outros?
A variável plataforma traz por vezes diversos consoles de uma mesma plataforma, por exemplo PS2, PS e PS3. Que tal criarmos uma variável contendo a plataforma em sua versão mais consolidada?
então… vamos a isso!!!
# Agrupar a informação de número de jogos por Publisher
publisher_count <- dados %>%
group_by(Publisher) %>%
summarise(n_games = n()) %>%
arrange(desc(n_games)) # Ordenar do maior para o menor
Agrupar em uma nova variável e rodar novamente a análise gráfica das variáveis categóricas:
n_limite <- 60 # Define o mínimo de jogos para não ser classificado como "Outros"; neste caso formando 10 categorias
# Criar uma nova coluna com "Outros" para publishers com poucos jogos
dados <- dados %>%
mutate(Publisher_Grouped = ifelse(Publisher %in% publisher_count$Publisher[publisher_count$n_games >= n_limite],
Publisher,
"Outros"))
# refazer a análise visual das variáveis categóricas
plot_bar(dados)
2 columns ignored with more than 50 categories.
Game.Title: 1519 categories
Publisher: 95 categories
dados <- dados %>%
mutate(Platform_Grouped = case_when(
Platform %in% c("PS", "PS2", "PS3", "PS4", "PS5", "PSP", "PSV") ~ "PlayStation",
Platform %in% c("X360", "XB", "XOne", "XSX") ~ "Xbox",
Platform %in% c("Wii", "WiiU") ~ "Nintendo Wii",
Platform %in% c("DS", "3DS", "GB", "GBA") ~ "Nintendo Handheld",
Platform %in% c("NES", "SNES", "N64", "GC", "Switch") ~ "Nintendo Console",
Platform %in% c("GEN", "SAT", "DC", "SCD") ~ "Sega",
TRUE ~ "Other" # Para outras plataformas
))
# refazer a análise visual das variáveis categóricas
plot_bar(dados)
2 columns ignored with more than 50 categories.
Game.Title: 1519 categories
Publisher: 95 categories
Uma vez ajustadas as questões observadas anteriormente na análise univariada, podemos partir para a análise bivariada
# inicialmente vamos ver as variáveis categóricas por Plataforma
plot_bar(dados, by = "Platform_Grouped")
2 columns ignored with more than 50 categories.
Game.Title: 1519 categories
Publisher: 95 categories
# depois para as variáveis numéricas
plot_boxplot(dados, by = "Platform_Grouped")
plot_boxplot(dados, by = "Genre")
plot_boxplot(dados, by = "Publisher_Grouped")
Momento para reflexão: temos todas as respostas /informações que desejamos?
Sempre podemos utilizar o GGPLOT2, uma robusta e potente biblioteca (linguagem) para gerar gráficos!
Imagine que desejamos ver as vendas em uma determinada região por tipo
de jogos lançado ao longo dos anos…
ggplot(dados, aes(x= Year, y= Japan, color = Platform_Grouped)) +
geom_point() +
labs(
title = "Vendas de Videojogos ao Longo dos Anos",
x = "Ano",
y = "Vendas no Japão (em milhões €)"
) +
theme_minimal()
se desejarmos ver as vendas mundiais por tipo de plataforma
# Por plataforma agrupada
ggplot(dados , aes(x=Platform_Grouped, y= Global, fill = Platform_Grouped)) +
geom_col() +
theme_grey()
# Por plataforma
ggplot(dados , aes(x=Platform, y= Global, fill = Platform_Grouped)) +
geom_col() +
theme_classic()
Se desejarmos ver a relação das vendas com reviews, separados por tipo
de plataforma.
dadosf <- dados %>% filter(Global < 10) %>% filter(Platform_Grouped == "PlayStation" | Platform_Grouped == "Xbox" | Platform_Grouped == "Nintendo Console")
ggplot(dadosf, aes(x=Review, y=Global, color = Platform_Grouped)) +
geom_point() +
theme_minimal() +
labs(
title = "Relação entre Avaliação e Vendas Globais",
x = "Avaliação (Review Score)",
y = "Vendas Globais (em milhões)",
color = "Plataforma"
)
# agora com linha de tendência
ggplot(dadosf, aes(x=Review, y=Global, color = Platform_Grouped)) +
geom_point() +
geom_smooth(method = "loess", se = TRUE, color = "black", linewidth = .8) + # Linha de tendência global
theme_minimal() +
labs(
title = "Relação entre Avaliação e Vendas Globais",
x = "Avaliação (Review Score)",
y = "Vendas Globais (em milhões)",
color = "Plataforma"
)
# agora com linha de tendência por Plataforma
ggplot(dadosf, aes(x=Review, y=Global, color = Platform_Grouped)) +
geom_point() +
geom_smooth(method = "loess", se = FALSE, linewidth = .8, aes(group = Platform_Grouped)) + # Linha de tendência global
theme_minimal() +
labs(
title = "Relação entre Avaliação e Vendas Globais",
x = "Avaliação (Review Score)",
y = "Vendas Globais (em milhões)",
color = "Plataforma"
)
Há muito mais por explorar…
Por ser uma plataforma aberta o R tem um vasto portfólio de bibliotecas e possibilidades! No mundo da Gestão do Negócios temos ferramentas como:
🎯 Há inúmeras soluções sem custos e dirigidas às suas necessidades.
Aqui listo algumas, contudo sempre terá na web um universo sem fim de
opções.
ChatGPT: para dúvidas rápidas ou mesmo códigos complexos. faça um prompt completo.
Coursera e DataCamp: cursos introdutórios grátis.
YouTube: Canais como Curso de Estatística Aplicada no R (https://www.youtube.com/playlist?list=PLOw62cBQ5j9VE9X4cCCfFMjW_hhEAJUhU), StatQuest (https://www.youtube.com/@statquest/search?query=in%20r), ou R Tutorial for Beginers (https://www.youtube.com/watch?v=KlsYCECWEWE).
Manual do R: https://cran.r-project.org/doc/manuals/r-release/R-intro.pdf
Sheet-Cheets: https://rstudio.github.io/cheatsheets/ https://rstudio.github.io/cheatsheets/html/data-transformation.html#summarize-cases
Livros: “R for Data Science” (Hadley Wickham). https://pt.r4ds.hadley.nz/